
from nfa import testRegexDump
if 1:
    testRegexDump( 'a | e' , 'an example string' ,

all={
("regex match:'a | e'", 0, 1) :1,
   # overlapping ('', 'a', 'n example string')
("regex match:'a | e'", 3, 4) :1,
   # overlapping ('an ', 'e', 'xample string')
("regex match:'a | e'", 5, 6) :1,
   # overlapping ('an ex', 'a', 'mple string')
("regex match:'a | e'", 9, 10) :1,
   # overlapping ('an exampl', 'e', ' string')
},
shortest={
("regex match:'a | e'", 0, 1) :1,
   # overlapping ('', 'a', 'n example string')
("regex match:'a | e'", 3, 4) :1,
   # overlapping ('an ', 'e', 'xample string')
("regex match:'a | e'", 5, 6) :1,
   # overlapping ('an ex', 'a', 'mple string')
("regex match:'a | e'", 9, 10) :1,
   # overlapping ('an exampl', 'e', ' string')
},
longest={

("regex match:'a | e'", 0, 1) :1,
   # overlapping ('', 'a', 'n example string')
("regex match:'a | e'", 3, 4) :1,
   # overlapping ('an ', 'e', 'xample string')
("regex match:'a | e'", 5, 6) :1,
   # overlapping ('an ex', 'a', 'mple string')
("regex match:'a | e'", 9, 10) :1,
   # overlapping ('an exampl', 'e', ' string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'ex' , 'an example string' ,

all={
("regex match:'ex'", 3, 5) :1,
   # overlapping ('an ', 'ex', 'ample string')
},
shortest={
("regex match:'ex'", 3, 5) :1,
   # overlapping ('an ', 'ex', 'ample string')
},
longest={

("regex match:'ex'", 3, 5) :1,
   # overlapping ('an ', 'ex', 'ample string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'ex | a' , 'an example string' ,

all={
("regex match:'ex | a'", 0, 1) :1,
   # overlapping ('', 'a', 'n example string')
("regex match:'ex | a'", 3, 5) :1,
   # overlapping ('an ', 'ex', 'ample string')
("regex match:'ex | a'", 5, 6) :1,
   # overlapping ('an ex', 'a', 'mple string')
},
shortest={
("regex match:'ex | a'", 0, 1) :1,
   # overlapping ('', 'a', 'n example string')
("regex match:'ex | a'", 3, 5) :1,
   # overlapping ('an ', 'ex', 'ample string')
("regex match:'ex | a'", 5, 6) :1,
   # overlapping ('an ex', 'a', 'mple string')
},
longest={

("regex match:'ex | a'", 0, 1) :1,
   # overlapping ('', 'a', 'n example string')
("regex match:'ex | a'", 3, 5) :1,
   # overlapping ('an ', 'ex', 'ample string')
("regex match:'ex | a'", 5, 6) :1,
   # overlapping ('an ex', 'a', 'mple string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'e*x' , 'example eexample ee xx' ,

all={
("regex match:'e*x'", 0, 2) :1,
   # overlapping ('', 'ex', 'ample eexample ee xx')
("regex match:'e*x'", 1, 2) :1,
   # overlapping ('e', 'x', 'ample eexample ee xx')
("regex match:'e*x'", 8, 11) :1,
   # overlapping ('example ', 'eex', 'ample ee xx')
("regex match:'e*x'", 9, 11) :1,
   # overlapping ('example e', 'ex', 'ample ee xx')
("regex match:'e*x'", 10, 11) :1,
   # overlapping ('example ee', 'x', 'ample ee xx')
("regex match:'e*x'", 20, 21) :1,
   # overlapping ('example eexample ee ', 'x', 'x')
("regex match:'e*x'", 21, 22) :1,
   # overlapping ('example eexample ee x', 'x', '')
},
shortest={
("regex match:'e*x'", 0, 2) :1,
   # overlapping ('', 'ex', 'ample eexample ee xx')
("regex match:'e*x'", 8, 11) :1,
   # overlapping ('example ', 'eex', 'ample ee xx')
("regex match:'e*x'", 20, 21) :1,
   # overlapping ('example eexample ee ', 'x', 'x')
("regex match:'e*x'", 21, 22) :1,
   # overlapping ('example eexample ee x', 'x', '')
},
longest={

("regex match:'e*x'", 0, 2) :1,
   # overlapping ('', 'ex', 'ample eexample ee xx')
("regex match:'e*x'", 8, 11) :1,
   # overlapping ('example ', 'eex', 'ample ee xx')
("regex match:'e*x'", 20, 21) :1,
   # overlapping ('example eexample ee ', 'x', 'x')
("regex match:'e*x'", 21, 22) :1,
   # overlapping ('example eexample ee x', 'x', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'ex*' , 'exxxxample eexxaammppllee' ,

all={
("regex match:'ex*'", 0, 1) :1,
   # overlapping ('', 'e', 'xxxxample eexxaammppllee')
("regex match:'ex*'", 0, 2) :1,
   # overlapping ('', 'ex', 'xxxample eexxaammppllee')
("regex match:'ex*'", 0, 3) :1,
   # overlapping ('', 'exx', 'xxample eexxaammppllee')
("regex match:'ex*'", 0, 4) :1,
   # overlapping ('', 'exxx', 'xample eexxaammppllee')
("regex match:'ex*'", 0, 5) :1,
   # overlapping ('', 'exxxx', 'ample eexxaammppllee')
("regex match:'ex*'", 9, 10) :1,
   # overlapping ('exxxxampl', 'e', ' eexxaammppllee')
("regex match:'ex*'", 11, 12) :1,
   # overlapping ('exxxxample ', 'e', 'exxaammppllee')
("regex match:'ex*'", 12, 13) :1,
   # overlapping ('exxxxample e', 'e', 'xxaammppllee')
("regex match:'ex*'", 12, 14) :1,
   # overlapping ('exxxxample e', 'ex', 'xaammppllee')
("regex match:'ex*'", 12, 15) :1,
   # overlapping ('exxxxample e', 'exx', 'aammppllee')
("regex match:'ex*'", 23, 24) :1,
   # overlapping ('exxxxample eexxaammppll', 'e', 'e')
("regex match:'ex*'", 24, 25) :1,
   # overlapping ('exxxxample eexxaammpplle', 'e', '')
},
shortest={
("regex match:'ex*'", 0, 1) :1,
   # overlapping ('', 'e', 'xxxxample eexxaammppllee')
("regex match:'ex*'", 9, 10) :1,
   # overlapping ('exxxxampl', 'e', ' eexxaammppllee')
("regex match:'ex*'", 11, 12) :1,
   # overlapping ('exxxxample ', 'e', 'exxaammppllee')
("regex match:'ex*'", 12, 13) :1,
   # overlapping ('exxxxample e', 'e', 'xxaammppllee')
("regex match:'ex*'", 23, 24) :1,
   # overlapping ('exxxxample eexxaammppll', 'e', 'e')
("regex match:'ex*'", 24, 25) :1,
   # overlapping ('exxxxample eexxaammpplle', 'e', '')
},
longest={

("regex match:'ex*'", 0, 5) :1,
   # overlapping ('', 'exxxx', 'ample eexxaammppllee')
("regex match:'ex*'", 9, 10) :1,
   # overlapping ('exxxxampl', 'e', ' eexxaammppllee')
("regex match:'ex*'", 11, 12) :1,
   # overlapping ('exxxxample ', 'e', 'exxaammppllee')
("regex match:'ex*'", 12, 15) :1,
   # overlapping ('exxxxample e', 'exx', 'aammppllee')
("regex match:'ex*'", 23, 24) :1,
   # overlapping ('exxxxample eexxaammppll', 'e', 'e')
("regex match:'ex*'", 24, 25) :1,
   # overlapping ('exxxxample eexxaammpplle', 'e', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'e+x' , 'example eexample ee xx' ,

all={
("regex match:'e+x'", 0, 2) :1,
   # overlapping ('', 'ex', 'ample eexample ee xx')
("regex match:'e+x'", 8, 11) :1,
   # overlapping ('example ', 'eex', 'ample ee xx')
("regex match:'e+x'", 9, 11) :1,
   # overlapping ('example e', 'ex', 'ample ee xx')
},
shortest={
("regex match:'e+x'", 0, 2) :1,
   # overlapping ('', 'ex', 'ample eexample ee xx')
("regex match:'e+x'", 8, 11) :1,
   # overlapping ('example ', 'eex', 'ample ee xx')
},
longest={

("regex match:'e+x'", 0, 2) :1,
   # overlapping ('', 'ex', 'ample eexample ee xx')
("regex match:'e+x'", 8, 11) :1,
   # overlapping ('example ', 'eex', 'ample ee xx')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'e?x' , 'example eexample ee xx' ,

all={
("regex match:'e?x'", 0, 2) :1,
   # overlapping ('', 'ex', 'ample eexample ee xx')
("regex match:'e?x'", 1, 2) :1,
   # overlapping ('e', 'x', 'ample eexample ee xx')
("regex match:'e?x'", 9, 11) :1,
   # overlapping ('example e', 'ex', 'ample ee xx')
("regex match:'e?x'", 10, 11) :1,
   # overlapping ('example ee', 'x', 'ample ee xx')
("regex match:'e?x'", 20, 21) :1,
   # overlapping ('example eexample ee ', 'x', 'x')
("regex match:'e?x'", 21, 22) :1,
   # overlapping ('example eexample ee x', 'x', '')
},
shortest={
("regex match:'e?x'", 0, 2) :1,
   # overlapping ('', 'ex', 'ample eexample ee xx')
("regex match:'e?x'", 9, 11) :1,
   # overlapping ('example e', 'ex', 'ample ee xx')
("regex match:'e?x'", 20, 21) :1,
   # overlapping ('example eexample ee ', 'x', 'x')
("regex match:'e?x'", 21, 22) :1,
   # overlapping ('example eexample ee x', 'x', '')
},
longest={

("regex match:'e?x'", 0, 2) :1,
   # overlapping ('', 'ex', 'ample eexample ee xx')
("regex match:'e?x'", 9, 11) :1,
   # overlapping ('example e', 'ex', 'ample ee xx')
("regex match:'e?x'", 20, 21) :1,
   # overlapping ('example eexample ee ', 'x', 'x')
("regex match:'e?x'", 21, 22) :1,
   # overlapping ('example eexample ee x', 'x', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '(a | e) x' , 'aexample eaxample oxample' ,

all={
("regex match:'(a | e) x'", 1, 3) :1,
   # overlapping ('a', 'ex', 'ample eaxample oxample')
("regex match:'(a | e) x'", 10, 12) :1,
   # overlapping ('aexample e', 'ax', 'ample oxample')
},
shortest={
("regex match:'(a | e) x'", 1, 3) :1,
   # overlapping ('a', 'ex', 'ample eaxample oxample')
("regex match:'(a | e) x'", 10, 12) :1,
   # overlapping ('aexample e', 'ax', 'ample oxample')
},
longest={

("regex match:'(a | e) x'", 1, 3) :1,
   # overlapping ('a', 'ex', 'ample eaxample oxample')
("regex match:'(a | e) x'", 10, 12) :1,
   # overlapping ('aexample e', 'ax', 'ample oxample')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '(a | e)? x' , 'aexample eaxample oxample' ,

all={
("regex match:'(a | e)? x'", 1, 3) :1,
   # overlapping ('a', 'ex', 'ample eaxample oxample')
("regex match:'(a | e)? x'", 2, 3) :1,
   # overlapping ('ae', 'x', 'ample eaxample oxample')
("regex match:'(a | e)? x'", 10, 12) :1,
   # overlapping ('aexample e', 'ax', 'ample oxample')
("regex match:'(a | e)? x'", 11, 12) :1,
   # overlapping ('aexample ea', 'x', 'ample oxample')
("regex match:'(a | e)? x'", 19, 20) :1,
   # overlapping ('aexample eaxample o', 'x', 'ample')
},
shortest={
("regex match:'(a | e)? x'", 1, 3) :1,
   # overlapping ('a', 'ex', 'ample eaxample oxample')
("regex match:'(a | e)? x'", 10, 12) :1,
   # overlapping ('aexample e', 'ax', 'ample oxample')
("regex match:'(a | e)? x'", 19, 20) :1,
   # overlapping ('aexample eaxample o', 'x', 'ample')
},
longest={

("regex match:'(a | e)? x'", 1, 3) :1,
   # overlapping ('a', 'ex', 'ample eaxample oxample')
("regex match:'(a | e)? x'", 10, 12) :1,
   # overlapping ('aexample e', 'ax', 'ample oxample')
("regex match:'(a | e)? x'", 19, 20) :1,
   # overlapping ('aexample eaxample o', 'x', 'ample')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '(a | e)+ x' , 'aexample eaxample oxample' ,

all={
("regex match:'(a | e)+ x'", 0, 3) :1,
   # overlapping ('', 'aex', 'ample eaxample oxample')
("regex match:'(a | e)+ x'", 1, 3) :1,
   # overlapping ('a', 'ex', 'ample eaxample oxample')
("regex match:'(a | e)+ x'", 9, 12) :1,
   # overlapping ('aexample ', 'eax', 'ample oxample')
("regex match:'(a | e)+ x'", 10, 12) :1,
   # overlapping ('aexample e', 'ax', 'ample oxample')
},
shortest={
("regex match:'(a | e)+ x'", 0, 3) :1,
   # overlapping ('', 'aex', 'ample eaxample oxample')
("regex match:'(a | e)+ x'", 9, 12) :1,
   # overlapping ('aexample ', 'eax', 'ample oxample')
},
longest={

("regex match:'(a | e)+ x'", 0, 3) :1,
   # overlapping ('', 'aex', 'ample eaxample oxample')
("regex match:'(a | e)+ x'", 9, 12) :1,
   # overlapping ('aexample ', 'eax', 'ample oxample')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '(a | e)* x' , 'aexample eaxample oxample' ,

all={
("regex match:'(a | e)* x'", 0, 3) :1,
   # overlapping ('', 'aex', 'ample eaxample oxample')
("regex match:'(a | e)* x'", 1, 3) :1,
   # overlapping ('a', 'ex', 'ample eaxample oxample')
("regex match:'(a | e)* x'", 2, 3) :1,
   # overlapping ('ae', 'x', 'ample eaxample oxample')
("regex match:'(a | e)* x'", 9, 12) :1,
   # overlapping ('aexample ', 'eax', 'ample oxample')
("regex match:'(a | e)* x'", 10, 12) :1,
   # overlapping ('aexample e', 'ax', 'ample oxample')
("regex match:'(a | e)* x'", 11, 12) :1,
   # overlapping ('aexample ea', 'x', 'ample oxample')
("regex match:'(a | e)* x'", 19, 20) :1,
   # overlapping ('aexample eaxample o', 'x', 'ample')
},
shortest={
("regex match:'(a | e)* x'", 0, 3) :1,
   # overlapping ('', 'aex', 'ample eaxample oxample')
("regex match:'(a | e)* x'", 9, 12) :1,
   # overlapping ('aexample ', 'eax', 'ample oxample')
("regex match:'(a | e)* x'", 19, 20) :1,
   # overlapping ('aexample eaxample o', 'x', 'ample')
},
longest={

("regex match:'(a | e)* x'", 0, 3) :1,
   # overlapping ('', 'aex', 'ample eaxample oxample')
("regex match:'(a | e)* x'", 9, 12) :1,
   # overlapping ('aexample ', 'eax', 'ample oxample')
("regex match:'(a | e)* x'", 19, 20) :1,
   # overlapping ('aexample eaxample o', 'x', 'ample')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '(a | ea)* x' , 'aexample eaxample oxample' ,

all={
("regex match:'(a | ea)* x'", 2, 3) :1,
   # overlapping ('ae', 'x', 'ample eaxample oxample')
("regex match:'(a | ea)* x'", 9, 12) :1,
   # overlapping ('aexample ', 'eax', 'ample oxample')
("regex match:'(a | ea)* x'", 10, 12) :1,
   # overlapping ('aexample e', 'ax', 'ample oxample')
("regex match:'(a | ea)* x'", 11, 12) :1,
   # overlapping ('aexample ea', 'x', 'ample oxample')
("regex match:'(a | ea)* x'", 19, 20) :1,
   # overlapping ('aexample eaxample o', 'x', 'ample')
},
shortest={
("regex match:'(a | ea)* x'", 2, 3) :1,
   # overlapping ('ae', 'x', 'ample eaxample oxample')
("regex match:'(a | ea)* x'", 9, 12) :1,
   # overlapping ('aexample ', 'eax', 'ample oxample')
("regex match:'(a | ea)* x'", 19, 20) :1,
   # overlapping ('aexample eaxample o', 'x', 'ample')
},
longest={

("regex match:'(a | ea)* x'", 2, 3) :1,
   # overlapping ('ae', 'x', 'ample eaxample oxample')
("regex match:'(a | ea)* x'", 9, 12) :1,
   # overlapping ('aexample ', 'eax', 'ample oxample')
("regex match:'(a | ea)* x'", 19, 20) :1,
   # overlapping ('aexample eaxample o', 'x', 'ample')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'a\\|b' , 'ab a|b ba' ,

all={
("regex match:'a\\\\|b'", 3, 6) :1,
   # overlapping ('ab ', 'a|b', ' ba')
},
shortest={
("regex match:'a\\\\|b'", 3, 6) :1,
   # overlapping ('ab ', 'a|b', ' ba')
},
longest={

("regex match:'a\\\\|b'", 3, 6) :1,
   # overlapping ('ab ', 'a|b', ' ba')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '\\|*b' , 'ab a|b ba' ,

all={
("regex match:'\\\\|*b'", 1, 2) :1,
   # overlapping ('a', 'b', ' a|b ba')
("regex match:'\\\\|*b'", 4, 6) :1,
   # overlapping ('ab a', '|b', ' ba')
("regex match:'\\\\|*b'", 5, 6) :1,
   # overlapping ('ab a|', 'b', ' ba')
("regex match:'\\\\|*b'", 7, 8) :1,
   # overlapping ('ab a|b ', 'b', 'a')
},
shortest={
("regex match:'\\\\|*b'", 1, 2) :1,
   # overlapping ('a', 'b', ' a|b ba')
("regex match:'\\\\|*b'", 4, 6) :1,
   # overlapping ('ab a', '|b', ' ba')
("regex match:'\\\\|*b'", 7, 8) :1,
   # overlapping ('ab a|b ', 'b', 'a')
},
longest={

("regex match:'\\\\|*b'", 1, 2) :1,
   # overlapping ('a', 'b', ' a|b ba')
("regex match:'\\\\|*b'", 4, 6) :1,
   # overlapping ('ab a', '|b', ' ba')
("regex match:'\\\\|*b'", 7, 8) :1,
   # overlapping ('ab a|b ', 'b', 'a')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[ae]' , 'an example string' ,

all={
("regex match:'[ae]'", 0, 1) :1,
   # overlapping ('', 'a', 'n example string')
("regex match:'[ae]'", 3, 4) :1,
   # overlapping ('an ', 'e', 'xample string')
("regex match:'[ae]'", 5, 6) :1,
   # overlapping ('an ex', 'a', 'mple string')
("regex match:'[ae]'", 9, 10) :1,
   # overlapping ('an exampl', 'e', ' string')
},
shortest={
("regex match:'[ae]'", 0, 1) :1,
   # overlapping ('', 'a', 'n example string')
("regex match:'[ae]'", 3, 4) :1,
   # overlapping ('an ', 'e', 'xample string')
("regex match:'[ae]'", 5, 6) :1,
   # overlapping ('an ex', 'a', 'mple string')
("regex match:'[ae]'", 9, 10) :1,
   # overlapping ('an exampl', 'e', ' string')
},
longest={

("regex match:'[ae]'", 0, 1) :1,
   # overlapping ('', 'a', 'n example string')
("regex match:'[ae]'", 3, 4) :1,
   # overlapping ('an ', 'e', 'xample string')
("regex match:'[ae]'", 5, 6) :1,
   # overlapping ('an ex', 'a', 'mple string')
("regex match:'[ae]'", 9, 10) :1,
   # overlapping ('an exampl', 'e', ' string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[ae]*x' , 'eaxample eaxemplex' ,

all={
("regex match:'[ae]*x'", 0, 3) :1,
   # overlapping ('', 'eax', 'ample eaxemplex')
("regex match:'[ae]*x'", 1, 3) :1,
   # overlapping ('e', 'ax', 'ample eaxemplex')
("regex match:'[ae]*x'", 2, 3) :1,
   # overlapping ('ea', 'x', 'ample eaxemplex')
("regex match:'[ae]*x'", 9, 12) :1,
   # overlapping ('eaxample ', 'eax', 'emplex')
("regex match:'[ae]*x'", 10, 12) :1,
   # overlapping ('eaxample e', 'ax', 'emplex')
("regex match:'[ae]*x'", 11, 12) :1,
   # overlapping ('eaxample ea', 'x', 'emplex')
("regex match:'[ae]*x'", 16, 18) :1,
   # overlapping ('eaxample eaxempl', 'ex', '')
("regex match:'[ae]*x'", 17, 18) :1,
   # overlapping ('eaxample eaxemple', 'x', '')
},
shortest={
("regex match:'[ae]*x'", 0, 3) :1,
   # overlapping ('', 'eax', 'ample eaxemplex')
("regex match:'[ae]*x'", 9, 12) :1,
   # overlapping ('eaxample ', 'eax', 'emplex')
("regex match:'[ae]*x'", 16, 18) :1,
   # overlapping ('eaxample eaxempl', 'ex', '')
},
longest={

("regex match:'[ae]*x'", 0, 3) :1,
   # overlapping ('', 'eax', 'ample eaxemplex')
("regex match:'[ae]*x'", 9, 12) :1,
   # overlapping ('eaxample ', 'eax', 'emplex')
("regex match:'[ae]*x'", 16, 18) :1,
   # overlapping ('eaxample eaxempl', 'ex', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[^ae]' , 'an example string' ,

all={
("regex match:'[^ae]'", 1, 2) :1,
   # overlapping ('a', 'n', ' example string')
("regex match:'[^ae]'", 2, 3) :1,
   # overlapping ('an', ' ', 'example string')
("regex match:'[^ae]'", 4, 5) :1,
   # overlapping ('an e', 'x', 'ample string')
("regex match:'[^ae]'", 6, 7) :1,
   # overlapping ('an exa', 'm', 'ple string')
("regex match:'[^ae]'", 7, 8) :1,
   # overlapping ('an exam', 'p', 'le string')
("regex match:'[^ae]'", 8, 9) :1,
   # overlapping ('an examp', 'l', 'e string')
("regex match:'[^ae]'", 10, 11) :1,
   # overlapping ('an example', ' ', 'string')
("regex match:'[^ae]'", 11, 12) :1,
   # overlapping ('an example ', 's', 'tring')
("regex match:'[^ae]'", 12, 13) :1,
   # overlapping ('an example s', 't', 'ring')
("regex match:'[^ae]'", 13, 14) :1,
   # overlapping ('an example st', 'r', 'ing')
("regex match:'[^ae]'", 14, 15) :1,
   # overlapping ('an example str', 'i', 'ng')
("regex match:'[^ae]'", 15, 16) :1,
   # overlapping ('an example stri', 'n', 'g')
("regex match:'[^ae]'", 16, 17) :1,
   # overlapping ('an example strin', 'g', '')
},
shortest={
("regex match:'[^ae]'", 1, 2) :1,
   # overlapping ('a', 'n', ' example string')
("regex match:'[^ae]'", 2, 3) :1,
   # overlapping ('an', ' ', 'example string')
("regex match:'[^ae]'", 4, 5) :1,
   # overlapping ('an e', 'x', 'ample string')
("regex match:'[^ae]'", 6, 7) :1,
   # overlapping ('an exa', 'm', 'ple string')
("regex match:'[^ae]'", 7, 8) :1,
   # overlapping ('an exam', 'p', 'le string')
("regex match:'[^ae]'", 8, 9) :1,
   # overlapping ('an examp', 'l', 'e string')
("regex match:'[^ae]'", 10, 11) :1,
   # overlapping ('an example', ' ', 'string')
("regex match:'[^ae]'", 11, 12) :1,
   # overlapping ('an example ', 's', 'tring')
("regex match:'[^ae]'", 12, 13) :1,
   # overlapping ('an example s', 't', 'ring')
("regex match:'[^ae]'", 13, 14) :1,
   # overlapping ('an example st', 'r', 'ing')
("regex match:'[^ae]'", 14, 15) :1,
   # overlapping ('an example str', 'i', 'ng')
("regex match:'[^ae]'", 15, 16) :1,
   # overlapping ('an example stri', 'n', 'g')
("regex match:'[^ae]'", 16, 17) :1,
   # overlapping ('an example strin', 'g', '')
},
longest={

("regex match:'[^ae]'", 1, 2) :1,
   # overlapping ('a', 'n', ' example string')
("regex match:'[^ae]'", 2, 3) :1,
   # overlapping ('an', ' ', 'example string')
("regex match:'[^ae]'", 4, 5) :1,
   # overlapping ('an e', 'x', 'ample string')
("regex match:'[^ae]'", 6, 7) :1,
   # overlapping ('an exa', 'm', 'ple string')
("regex match:'[^ae]'", 7, 8) :1,
   # overlapping ('an exam', 'p', 'le string')
("regex match:'[^ae]'", 8, 9) :1,
   # overlapping ('an examp', 'l', 'e string')
("regex match:'[^ae]'", 10, 11) :1,
   # overlapping ('an example', ' ', 'string')
("regex match:'[^ae]'", 11, 12) :1,
   # overlapping ('an example ', 's', 'tring')
("regex match:'[^ae]'", 12, 13) :1,
   # overlapping ('an example s', 't', 'ring')
("regex match:'[^ae]'", 13, 14) :1,
   # overlapping ('an example st', 'r', 'ing')
("regex match:'[^ae]'", 14, 15) :1,
   # overlapping ('an example str', 'i', 'ng')
("regex match:'[^ae]'", 15, 16) :1,
   # overlapping ('an example stri', 'n', 'g')
("regex match:'[^ae]'", 16, 17) :1,
   # overlapping ('an example strin', 'g', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'e.a' , 'an example a string' ,

all={
("regex match:'e.a'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple a string')
("regex match:'e.a'", 9, 12) :1,
   # overlapping ('an exampl', 'e a', ' string')
},
shortest={
("regex match:'e.a'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple a string')
("regex match:'e.a'", 9, 12) :1,
   # overlapping ('an exampl', 'e a', ' string')
},
longest={

("regex match:'e.a'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple a string')
("regex match:'e.a'", 9, 12) :1,
   # overlapping ('an exampl', 'e a', ' string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'e\\wa' , 'an example a string' ,

all={
("regex match:'e\\\\wa'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple a string')
},
shortest={
("regex match:'e\\\\wa'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple a string')
},
longest={

("regex match:'e\\\\wa'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple a string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'e\\Wa' , 'an example a string' ,

all={
("regex match:'e\\\\Wa'", 9, 12) :1,
   # overlapping ('an exampl', 'e a', ' string')
},
shortest={
("regex match:'e\\\\Wa'", 9, 12) :1,
   # overlapping ('an exampl', 'e a', ' string')
},
longest={

("regex match:'e\\\\Wa'", 9, 12) :1,
   # overlapping ('an exampl', 'e a', ' string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'e\\sa' , 'an example a string' ,

all={
("regex match:'e\\\\sa'", 9, 12) :1,
   # overlapping ('an exampl', 'e a', ' string')
},
shortest={
("regex match:'e\\\\sa'", 9, 12) :1,
   # overlapping ('an exampl', 'e a', ' string')
},
longest={

("regex match:'e\\\\sa'", 9, 12) :1,
   # overlapping ('an exampl', 'e a', ' string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'e\\Sa' , 'an example a string' ,

all={
("regex match:'e\\\\Sa'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple a string')
},
shortest={
("regex match:'e\\\\Sa'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple a string')
},
longest={

("regex match:'e\\\\Sa'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple a string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'e\\da' , 'an example e6a  a string' ,

all={
("regex match:'e\\\\da'", 11, 14) :1,
   # overlapping ('an example ', 'e6a', '  a string')
},
shortest={
("regex match:'e\\\\da'", 11, 14) :1,
   # overlapping ('an example ', 'e6a', '  a string')
},
longest={

("regex match:'e\\\\da'", 11, 14) :1,
   # overlapping ('an example ', 'e6a', '  a string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( 'e\\Da' , 'an example e6a e a string' ,

all={
("regex match:'e\\\\Da'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple e6a e a string')
("regex match:'e\\\\Da'", 15, 18) :1,
   # overlapping ('an example e6a ', 'e a', ' string')
},
shortest={
("regex match:'e\\\\Da'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple e6a e a string')
("regex match:'e\\\\Da'", 15, 18) :1,
   # overlapping ('an example e6a ', 'e a', ' string')
},
longest={

("regex match:'e\\\\Da'", 3, 6) :1,
   # overlapping ('an ', 'exa', 'mple e6a e a string')
("regex match:'e\\\\Da'", 15, 18) :1,
   # overlapping ('an example e6a ', 'e a', ' string')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[\\s\\d%]' , '1 a%' ,

all={
("regex match:'[\\\\s\\\\d%]'", 0, 1) :1,
   # overlapping ('', '1', ' a%')
("regex match:'[\\\\s\\\\d%]'", 1, 2) :1,
   # overlapping ('1', ' ', 'a%')
("regex match:'[\\\\s\\\\d%]'", 3, 4) :1,
   # overlapping ('1 a', '%', '')
},
shortest={
("regex match:'[\\\\s\\\\d%]'", 0, 1) :1,
   # overlapping ('', '1', ' a%')
("regex match:'[\\\\s\\\\d%]'", 1, 2) :1,
   # overlapping ('1', ' ', 'a%')
("regex match:'[\\\\s\\\\d%]'", 3, 4) :1,
   # overlapping ('1 a', '%', '')
},
longest={

("regex match:'[\\\\s\\\\d%]'", 0, 1) :1,
   # overlapping ('', '1', ' a%')
("regex match:'[\\\\s\\\\d%]'", 1, 2) :1,
   # overlapping ('1', ' ', 'a%')
("regex match:'[\\\\s\\\\d%]'", 3, 4) :1,
   # overlapping ('1 a', '%', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[^\\s\\d%]' , '1 a%' ,

all={
("regex match:'[^\\\\s\\\\d%]'", 2, 3) :1,
   # overlapping ('1 ', 'a', '%')
},
shortest={
("regex match:'[^\\\\s\\\\d%]'", 2, 3) :1,
   # overlapping ('1 ', 'a', '%')
},
longest={

("regex match:'[^\\\\s\\\\d%]'", 2, 3) :1,
   # overlapping ('1 ', 'a', '%')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[\\w]' , '1 a%' ,

all={
("regex match:'[\\\\w]'", 0, 1) :1,
   # overlapping ('', '1', ' a%')
("regex match:'[\\\\w]'", 2, 3) :1,
   # overlapping ('1 ', 'a', '%')
},
shortest={
("regex match:'[\\\\w]'", 0, 1) :1,
   # overlapping ('', '1', ' a%')
("regex match:'[\\\\w]'", 2, 3) :1,
   # overlapping ('1 ', 'a', '%')
},
longest={

("regex match:'[\\\\w]'", 0, 1) :1,
   # overlapping ('', '1', ' a%')
("regex match:'[\\\\w]'", 2, 3) :1,
   # overlapping ('1 ', 'a', '%')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[^\\w]' , '1 a%' ,

all={
("regex match:'[^\\\\w]'", 1, 2) :1,
   # overlapping ('1', ' ', 'a%')
("regex match:'[^\\\\w]'", 3, 4) :1,
   # overlapping ('1 a', '%', '')
},
shortest={
("regex match:'[^\\\\w]'", 1, 2) :1,
   # overlapping ('1', ' ', 'a%')
("regex match:'[^\\\\w]'", 3, 4) :1,
   # overlapping ('1 a', '%', '')
},
longest={

("regex match:'[^\\\\w]'", 1, 2) :1,
   # overlapping ('1', ' ', 'a%')
("regex match:'[^\\\\w]'", 3, 4) :1,
   # overlapping ('1 a', '%', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[\\w\\s]' , '1 a%' ,

all={
("regex match:'[\\\\w\\\\s]'", 0, 1) :1,
   # overlapping ('', '1', ' a%')
("regex match:'[\\\\w\\\\s]'", 1, 2) :1,
   # overlapping ('1', ' ', 'a%')
("regex match:'[\\\\w\\\\s]'", 2, 3) :1,
   # overlapping ('1 ', 'a', '%')
},
shortest={
("regex match:'[\\\\w\\\\s]'", 0, 1) :1,
   # overlapping ('', '1', ' a%')
("regex match:'[\\\\w\\\\s]'", 1, 2) :1,
   # overlapping ('1', ' ', 'a%')
("regex match:'[\\\\w\\\\s]'", 2, 3) :1,
   # overlapping ('1 ', 'a', '%')
},
longest={

("regex match:'[\\\\w\\\\s]'", 0, 1) :1,
   # overlapping ('', '1', ' a%')
("regex match:'[\\\\w\\\\s]'", 1, 2) :1,
   # overlapping ('1', ' ', 'a%')
("regex match:'[\\\\w\\\\s]'", 2, 3) :1,
   # overlapping ('1 ', 'a', '%')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[^\\w\\s]' , '1 a%' ,

all={
("regex match:'[^\\\\w\\\\s]'", 3, 4) :1,
   # overlapping ('1 a', '%', '')
},
shortest={
("regex match:'[^\\\\w\\\\s]'", 3, 4) :1,
   # overlapping ('1 a', '%', '')
},
longest={

("regex match:'[^\\\\w\\\\s]'", 3, 4) :1,
   # overlapping ('1 a', '%', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[a-d]' , 'axcjd&b' ,

all={
("regex match:'[a-d]'", 0, 1) :1,
   # overlapping ('', 'a', 'xcjd&b')
("regex match:'[a-d]'", 2, 3) :1,
   # overlapping ('ax', 'c', 'jd&b')
("regex match:'[a-d]'", 4, 5) :1,
   # overlapping ('axcj', 'd', '&b')
("regex match:'[a-d]'", 6, 7) :1,
   # overlapping ('axcjd&', 'b', '')
},
shortest={
("regex match:'[a-d]'", 0, 1) :1,
   # overlapping ('', 'a', 'xcjd&b')
("regex match:'[a-d]'", 2, 3) :1,
   # overlapping ('ax', 'c', 'jd&b')
("regex match:'[a-d]'", 4, 5) :1,
   # overlapping ('axcj', 'd', '&b')
("regex match:'[a-d]'", 6, 7) :1,
   # overlapping ('axcjd&', 'b', '')
},
longest={

("regex match:'[a-d]'", 0, 1) :1,
   # overlapping ('', 'a', 'xcjd&b')
("regex match:'[a-d]'", 2, 3) :1,
   # overlapping ('ax', 'c', 'jd&b')
("regex match:'[a-d]'", 4, 5) :1,
   # overlapping ('axcj', 'd', '&b')
("regex match:'[a-d]'", 6, 7) :1,
   # overlapping ('axcjd&', 'b', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[ja-d]' , 'axcjd&b' ,

all={
("regex match:'[ja-d]'", 0, 1) :1,
   # overlapping ('', 'a', 'xcjd&b')
("regex match:'[ja-d]'", 2, 3) :1,
   # overlapping ('ax', 'c', 'jd&b')
("regex match:'[ja-d]'", 3, 4) :1,
   # overlapping ('axc', 'j', 'd&b')
("regex match:'[ja-d]'", 4, 5) :1,
   # overlapping ('axcj', 'd', '&b')
("regex match:'[ja-d]'", 6, 7) :1,
   # overlapping ('axcjd&', 'b', '')
},
shortest={
("regex match:'[ja-d]'", 0, 1) :1,
   # overlapping ('', 'a', 'xcjd&b')
("regex match:'[ja-d]'", 2, 3) :1,
   # overlapping ('ax', 'c', 'jd&b')
("regex match:'[ja-d]'", 3, 4) :1,
   # overlapping ('axc', 'j', 'd&b')
("regex match:'[ja-d]'", 4, 5) :1,
   # overlapping ('axcj', 'd', '&b')
("regex match:'[ja-d]'", 6, 7) :1,
   # overlapping ('axcjd&', 'b', '')
},
longest={

("regex match:'[ja-d]'", 0, 1) :1,
   # overlapping ('', 'a', 'xcjd&b')
("regex match:'[ja-d]'", 2, 3) :1,
   # overlapping ('ax', 'c', 'jd&b')
("regex match:'[ja-d]'", 3, 4) :1,
   # overlapping ('axc', 'j', 'd&b')
("regex match:'[ja-d]'", 4, 5) :1,
   # overlapping ('axcj', 'd', '&b')
("regex match:'[ja-d]'", 6, 7) :1,
   # overlapping ('axcjd&', 'b', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[^a-d]' , 'axcjd&b' ,

all={
("regex match:'[^a-d]'", 1, 2) :1,
   # overlapping ('a', 'x', 'cjd&b')
("regex match:'[^a-d]'", 3, 4) :1,
   # overlapping ('axc', 'j', 'd&b')
("regex match:'[^a-d]'", 5, 6) :1,
   # overlapping ('axcjd', '&', 'b')
},
shortest={
("regex match:'[^a-d]'", 1, 2) :1,
   # overlapping ('a', 'x', 'cjd&b')
("regex match:'[^a-d]'", 3, 4) :1,
   # overlapping ('axc', 'j', 'd&b')
("regex match:'[^a-d]'", 5, 6) :1,
   # overlapping ('axcjd', '&', 'b')
},
longest={

("regex match:'[^a-d]'", 1, 2) :1,
   # overlapping ('a', 'x', 'cjd&b')
("regex match:'[^a-d]'", 3, 4) :1,
   # overlapping ('axc', 'j', 'd&b')
("regex match:'[^a-d]'", 5, 6) :1,
   # overlapping ('axcjd', '&', 'b')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[a-d1-3]' , 'a2xc4 3 jd&b' ,

all={
("regex match:'[a-d1-3]'", 0, 1) :1,
   # overlapping ('', 'a', '2xc4 3 jd&b')
("regex match:'[a-d1-3]'", 1, 2) :1,
   # overlapping ('a', '2', 'xc4 3 jd&b')
("regex match:'[a-d1-3]'", 3, 4) :1,
   # overlapping ('a2x', 'c', '4 3 jd&b')
("regex match:'[a-d1-3]'", 6, 7) :1,
   # overlapping ('a2xc4 ', '3', ' jd&b')
("regex match:'[a-d1-3]'", 9, 10) :1,
   # overlapping ('a2xc4 3 j', 'd', '&b')
("regex match:'[a-d1-3]'", 11, 12) :1,
   # overlapping ('a2xc4 3 jd&', 'b', '')
},
shortest={
("regex match:'[a-d1-3]'", 0, 1) :1,
   # overlapping ('', 'a', '2xc4 3 jd&b')
("regex match:'[a-d1-3]'", 1, 2) :1,
   # overlapping ('a', '2', 'xc4 3 jd&b')
("regex match:'[a-d1-3]'", 3, 4) :1,
   # overlapping ('a2x', 'c', '4 3 jd&b')
("regex match:'[a-d1-3]'", 6, 7) :1,
   # overlapping ('a2xc4 ', '3', ' jd&b')
("regex match:'[a-d1-3]'", 9, 10) :1,
   # overlapping ('a2xc4 3 j', 'd', '&b')
("regex match:'[a-d1-3]'", 11, 12) :1,
   # overlapping ('a2xc4 3 jd&', 'b', '')
},
longest={

("regex match:'[a-d1-3]'", 0, 1) :1,
   # overlapping ('', 'a', '2xc4 3 jd&b')
("regex match:'[a-d1-3]'", 1, 2) :1,
   # overlapping ('a', '2', 'xc4 3 jd&b')
("regex match:'[a-d1-3]'", 3, 4) :1,
   # overlapping ('a2x', 'c', '4 3 jd&b')
("regex match:'[a-d1-3]'", 6, 7) :1,
   # overlapping ('a2xc4 ', '3', ' jd&b')
("regex match:'[a-d1-3]'", 9, 10) :1,
   # overlapping ('a2xc4 3 j', 'd', '&b')
("regex match:'[a-d1-3]'", 11, 12) :1,
   # overlapping ('a2xc4 3 jd&', 'b', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '[\\]]' , 'a2xc4 3 ] jd&b' ,

all={
("regex match:'[\\\\]]'", 8, 9) :1,
   # overlapping ('a2xc4 3 ', ']', ' jd&b')
},
shortest={
("regex match:'[\\\\]]'", 8, 9) :1,
   # overlapping ('a2xc4 3 ', ']', ' jd&b')
},
longest={

("regex match:'[\\\\]]'", 8, 9) :1,
   # overlapping ('a2xc4 3 ', ']', ' jd&b')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '\\)' , '( a test )' ,

all={
("regex match:'\\\\)'", 9, 10) :1,
   # overlapping ('( a test ', ')', '')
},
shortest={
("regex match:'\\\\)'", 9, 10) :1,
   # overlapping ('( a test ', ')', '')
},
longest={

("regex match:'\\\\)'", 9, 10) :1,
   # overlapping ('( a test ', ')', '')
},
)
from nfa import testRegexDump
if 1:
    testRegexDump( '<.*>' , '<html>some stuff <b>bold stuff</b> more</html>' ,

all={
("regex match:'<.*>'", 0, 6) :1,
   # overlapping ('', '<html>', 'some stuff <b>bold stuff</b> more</html>')
("regex match:'<.*>'", 0, 20) :1,
   # overlapping ('', '<html>some stuff <b>', 'bold stuff</b> more</html>')
("regex match:'<.*>'", 17, 20) :1,
   # overlapping ('<html>some stuff ', '<b>', 'bold stuff</b> more</html>')
("regex match:'<.*>'", 0, 34) :1,
   # overlapping ('', '<html>some stuff <b>bold stuff</b>', ' more</html>')
("regex match:'<.*>'", 17, 34) :1,
   # overlapping ('<html>some stuff ', '<b>bold stuff</b>', ' more</html>')
("regex match:'<.*>'", 30, 34) :1,
   # overlapping ('<html>some stuff <b>bold stuff', '</b>', ' more</html>')
("regex match:'<.*>'", 0, 46) :1,
   # overlapping ('', '<html>some stuff <b>bold stuff</b> more</html>', '')
("regex match:'<.*>'", 17, 46) :1,
   # overlapping ('<html>some stuff ', '<b>bold stuff</b> more</html>', '')
("regex match:'<.*>'", 30, 46) :1,
   # overlapping ('<html>some stuff <b>bold stuff', '</b> more</html>', '')
("regex match:'<.*>'", 39, 46) :1,
   # overlapping ('<html>some stuff <b>bold stuff</b> more', '</html>', '')
},
shortest={
("regex match:'<.*>'", 0, 6) :1,
   # overlapping ('', '<html>', 'some stuff <b>bold stuff</b> more</html>')
("regex match:'<.*>'", 17, 20) :1,
   # overlapping ('<html>some stuff ', '<b>', 'bold stuff</b> more</html>')
("regex match:'<.*>'", 30, 34) :1,
   # overlapping ('<html>some stuff <b>bold stuff', '</b>', ' more</html>')
("regex match:'<.*>'", 39, 46) :1,
   # overlapping ('<html>some stuff <b>bold stuff</b> more', '</html>', '')
},
longest={

("regex match:'<.*>'", 0, 46) :1,
   # overlapping ('', '<html>some stuff <b>bold stuff</b> more</html>', '')
},
)
